// 通用方法混入，会混入到组件内，结构和组件都一样
// 使用方法:1.import LoginConfirm from '@/mixins/LoginConfirm'
/* 2.组件内配置mixins：
export default {
   mixins: [LoginConfirm], // 后面混入的优先级更高 */
// 3.直接用this调用即可：this.loginCheck()
export default {
  // 此处编写的就是VUE组件市里的配置项，通过一定的语法，可以直接混入到组件内部
// 可以写data,methods,computed以及生命周期函数
// 如果此处和组件内定义的同名，则组件内部优先级高
// created等周期函数不存在覆盖，会和组件内的周期函数一并执行1
  methods: {
    // 登录状态检查：如果未登录显示确认框返回true，如果已登录 返回false
    loginCheck () {
      // 判断token是否存在，是否登录
      if (!this.$store.getters.getToken) {
        this.$dialog.confirm({
          title: '温馨提示',
          message: '需要登录才能继续操作',
          confirmButtonText: '去登录',
          cancelButtonText: '再逛逛'
        })
          .then(() => { // .then点击确定按钮的操作
            // 如果希望登录后跳转回来，需要在跳转去携带当前路径（this.$route.fullpath：已包含参数）
            // Push:跳转会有跳转历史，replace：直接替换，返回上一步时不会有登录页了
            this.$router.replace({
              path: '/login',
              query: {
                backUrl: this.$route.fullPath
              }
            })
          })
          // .catch点击取消按钮的操作
          .catch(() => { })
        return true
      }
      return false
    }
  }
}
